//
// Tables
// --------------------------------------------------


// BASE TABLES
// -----------------


.typographic-block() {
  display:block;
  float:left;
  min-width:80px;
  max-width:250px;
}

.typographic{
  img{
    display:block;
    float:left;
    margin-right:10px;
  }
  a{
    .typographic-block;
  }
  span{
    .typographic-block;
    text-align:center;
  }
  ul{
    .typographic-block;
    text-align:center;
  }
}

.sui-table {
  width: 100%;
  margin-bottom: @baseMargin;
  max-width: 100%;
  background-color: @tableBackground;
  border-collapse: collapse;
  border-spacing: 0;
  .gray{
    color: @grayLight;
  }
  th,td{
    img,label{
      margin-right: 10px;
    }
  }
  ul{
    margin:0;
  }
  label.checkbox{
    display: inline-block;
  }

// BASELINE STYLES
// ---------------

  
  // Cells
  th,
  td {
    padding: @tablePadding;
    line-height: @baseLineHeight;
    text-align: left;
    vertical-align: middle;
    border-top: 1px solid @tableBorder;
  }
  th {
    font-weight: bold;
  }
  // Bottom align for column headings
  thead th {
    vertical-align: bottom;
  }
  // Remove top border from thead by default
  caption + thead tr:first-child th,
  caption + thead tr:first-child td,
  colgroup + thead tr:first-child th,
  colgroup + thead tr:first-child td,
  thead:first-child tr:first-child th,
  thead:first-child tr:first-child td {
    border-top: 0;
  }
  // Account for multiple tbody instances
  tbody + tbody {
    border-top: 2px solid @tableBorder;
  }

  // Nesting
  .sui-table {
    background-color: @bodyBackground;
  }

  input{
    margin-top:-2px;
    margin-right:2px;
  }
  label{
    margin-bottom:0px;
  }
  th.center{
    text-align:center;
  }
  td.center{
    text-align:center;
  }

  // CONDENSED TABLE W/ HALF PADDING
  // -------------------------------

  &.table-condensed {
    th,
    td {
      padding: 4px 5px;
    }
  }


  // BORDERED VERSION
  // ----------------

  &.table-bordered {
    border: 1px solid @tableBorder;
    border-collapse: separate; // Done so we can round those corners!
    *border-collapse: collapse; // IE7 can't round corners anyway
    border-left: 0;
    .border-radius(@baseBorderRadius);
    th{
      background-color:@tableHeadBackground;
    }
    th,
    td {
      border-left: 1px solid @tableBorder;
    }
    // Prevent a double border
    caption + thead tr:first-child th,
    caption + tbody tr:first-child th,
    caption + tbody tr:first-child td,
    colgroup + thead tr:first-child th,
    colgroup + tbody tr:first-child th,
    colgroup + tbody tr:first-child td,
    thead:first-child tr:first-child th,
    tbody:first-child tr:first-child th,
    tbody:first-child tr:first-child td {
      border-top: 0;
    }

    tbody tr:first-child td{
      border-top:0;
    }

    thead:first-child tr:first-child th{
      border-bottom: 1px solid @tableBorder;
    }
    

    // For first th/td in the first row in the first thead or tbody
    thead:first-child tr:first-child > th:first-child,
    tbody:first-child tr:first-child > td:first-child,
    tbody:first-child tr:first-child > th:first-child {
      .border-top-left-radius(@baseBorderRadius);
    }
    // For last th/td in the first row in the first thead or tbody
    thead:first-child tr:first-child > th:last-child,
    tbody:first-child tr:first-child > td:last-child,
    tbody:first-child tr:first-child > th:last-child {
      .border-top-right-radius(@baseBorderRadius);
    }
    // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot
    thead:last-child tr:last-child > th:first-child,
    tbody:last-child tr:last-child > td:first-child,
    tbody:last-child tr:last-child > th:first-child,
    tfoot:last-child tr:last-child > td:first-child,
    tfoot:last-child tr:last-child > th:first-child {
      .border-bottom-left-radius(@baseBorderRadius);
    }
    // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot
    thead:last-child tr:last-child > th:last-child,
    tbody:last-child tr:last-child > td:last-child,
    tbody:last-child tr:last-child > th:last-child,
    tfoot:last-child tr:last-child > td:last-child,
    tfoot:last-child tr:last-child > th:last-child {
      .border-bottom-right-radius(@baseBorderRadius);
    }

    // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot
    tfoot + tbody:last-child tr:last-child td:first-child {
      .border-bottom-left-radius(0);
    }
    tfoot + tbody:last-child tr:last-child td:last-child {
      .border-bottom-right-radius(0);
    }

    // Special fixes to round the left border on the first td/th
    caption + thead tr:first-child th:first-child,
    caption + tbody tr:first-child td:first-child,
    colgroup + thead tr:first-child th:first-child,
    colgroup + tbody tr:first-child td:first-child {
      .border-top-left-radius(@baseBorderRadius);
    }
    caption + thead tr:first-child th:last-child,
    caption + tbody tr:first-child td:last-child,
    colgroup + thead tr:first-child th:last-child,
    colgroup + tbody tr:first-child td:last-child {
      .border-top-right-radius(@baseBorderRadius);
    }

  }

  &.table-bordered-simple {
    .table-bordered;
    th,
    td {
      border-left: 0;
    }

    th:first-child,
    td:first-child{
      border-left: 1px solid @tableBorder;
    }
    margin-bottom: 5px;
  }

  &.table-sideheader {
    .table-bordered;

    tbody tr td:first-child{
      background-color:@tableHeadBackground;
    }

  }

  &.table-nobody {
    margin-bottom: 0px;
  }

  &.table-primary {
    .table-bordered;
    th{
      background-color:@tableHeadBackgroundLight;
      border-left: 1px solid @tableBorderLight;
    }
  } 


  // ZEBRA-STRIPING
  // --------------

  // Default zebra-stripe styles (alternating gray and transparent backgrounds)
  &.table-zebra {
    tbody {
      > tr:nth-child(odd) > td,
      > tr:nth-child(odd) > th {
        background-color: @tableBackgroundAccent;
      }
    }
  }

  &.table-vzebra {
    .table-bordered;
    tbody {
      > tr > td:nth-child(odd),
      > tr > th:nth-child(odd) {
        background-color: @tableBackgroundAccent;
      }
    }
  }



  &.table-nobordered{
    .table-zebra;
    th{
      border-bottom:1px solid @tableBorder;
    }
    th,
    td {
      border-top: 0;
    }
  } 


  // HOVER EFFECT
  // ------------
  // Placed here since it has to come after the potential zebra striping
  &.table-hover {
    tbody {
      tr:hover > td,
      tr:hover > th {
        background-color: @tableBackgroundHover;
      }
    }
  }
}


// TABLE CELL SIZING
// -----------------

// Reset default grid behavior
.sui-table td[class*="span"],
.sui-table th[class*="span"],
.row-fluid .sui-table td[class*="span"],
.row-fluid .sui-table th[class*="span"] {
  display: table-cell;
  float: none; // undo default grid column styles
  margin-left: 0; // undo default grid column styles
}

// Change the column widths to account for td/th padding
.sui-table td,
.sui-table th {
  &.span1     { .tableColumns(1); }
  &.span2     { .tableColumns(2); }
  &.span3     { .tableColumns(3); }
  &.span4     { .tableColumns(4); }
  &.span5     { .tableColumns(5); }
  &.span6     { .tableColumns(6); }
  &.span7     { .tableColumns(7); }
  &.span8     { .tableColumns(8); }
  &.span9     { .tableColumns(9); }
  &.span10    { .tableColumns(10); }
  &.span11    { .tableColumns(11); }
  &.span12    { .tableColumns(12); }
}




// TABLE BACKGROUNDS
// -----------------
// Exact selectors below required to override .table-striped

.sui-table tbody tr {
  &.success > td {
    background-color: @successBackground;
  }
  &.error > td {
    background-color: @errorBackground;
  }
  &.warning > td {
    background-color: @warningBackground;
  }
  &.info > td {
    background-color: @infoBackground;
  }
}

// Hover states for .table-hover
.sui-table .table-hover tbody tr {
  &.success:hover > td {
    background-color: darken(@successBackground, 5%);
  }
  &.error:hover > td {
    background-color: darken(@errorBackground, 5%);
  }
  &.warning:hover > td {
    background-color: darken(@warningBackground, 5%);
  }
  &.info:hover > td {
    background-color: darken(@infoBackground, 5%);
  }
}
